﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
//using MetenWechat.Common;
//using MetenWechat.ViewModel;
//using MetenWechat.Model.Models.Message;
//using MetenWechat.BusinessServices.BusinessLogic.Repository.Eme;
//using MetenWechat.BusinessServices.BusinessLogic.Repository.Message;
//namespace MetenWechat.BusinessServices.BusinessLogic.Business
//{

//    /// <summary>
//    /// 存储消息业务
//    /// </summary>
//    public class NotifyStorageBusiness 
//    {
//        /// <summary>
//        /// 写入消息历史表
//        /// </summary>
//        /// <param name="Notify"></param>
//        public void CallbackHistoryNotify(NotifyViewModel notifyView)
//        {
//            if (notifyView == null)
//                throw new ArgumentNullException("notifyView");
//            if (notifyView.User == null)
//                throw new ArgumentNullException("User");
//            MessageHistoryNotifyRepository MsgHistoryRep = new MessageHistoryNotifyRepository();
//            if (notifyView.IsSuccessful)
//            {
               
//                MessageHistoryNotify notify = new MessageHistoryNotify();
//                notify.Content = notifyView.Content;
//                notify.CreatedDate = DateTime.Now;
//                notify.MessageType = notifyView.MessageTypeId;
//                notify.Remarks = "";
//                notify.SUserId = notifyView.User.UserId;
//                notify.WechatId = notifyView.User.WechatId;
//                notify.Mobile = notifyView.User.Mobile;
//                notify.SendType = (int)notifyView.SendType;
//                if (notifyView.ReferenceId.HasValue)
//                {
//                    UpdateMessageFailNotify(notifyView,false);
//                }
//                MsgHistoryRep.Add(notify);
//                MsgHistoryRep.CommitSaveChanges();
//            }
//            else
//            {
//                if (notifyView.ReferenceId.HasValue)
//                {
//                    UpdateMessageFailNotify(notifyView, true);
//                }
//                else
//                {
//                    AddMessageFailNotify(notifyView);
//                }
              
//            }
//        }

//        /// <summary>
//        /// 写入消息失败表
//        /// </summary>
//        /// <param name="notifyView"></param>
//        /// <returns></returns>
//        public bool AddMessageFailNotify(NotifyViewModel notifyView)
//        {
//            if (notifyView == null)
//                throw new ArgumentNullException("notifyView");
//            if (notifyView.User == null)
//                throw new ArgumentNullException("User");
//            MessageFailNotifyRepository MsgFailRep = new MessageFailNotifyRepository();
//            MessageFailNotify notify = new MessageFailNotify();
//            notify.Content = notifyView.Content;
//            notify.CreatedDate = DateTime.Now;
//            notify.MessageType = notifyView.MessageTypeId;
//            notify.Remarks = "";
//            notify.SUserId = notifyView.User.UserId;
//            notify.WechatId = notifyView.User.WechatId;
//            notify.Mobile = notifyView.User.Mobile;
//            notify.ResendTimes = 0;
//            notify.Status = (int)EnumResolveState.WaitResolve;
//            notify.ErrorMsg = notifyView.ErrorMsg;
//            notify.SendType = (int)notifyView.SendType;
//            MsgFailRep.Add(notify);
//            return MsgFailRep.CommitSaveChanges() > 0;
//        }

//        /// <summary>
//        /// 修改消息失败表
//        /// </summary>
//        /// <param name="notifyView"></param>
//        /// <param name="autoCommit"></param>
//        public void UpdateMessageFailNotify(NotifyViewModel notifyView, bool autoCommit)
//        {
//            if (notifyView==null)
//                throw new ArgumentNullException("notifyView");
//            if(!notifyView.ReferenceId.HasValue)
//                throw new ArgumentNullException("ReferenceId");
//            MessageFailNotifyRepository MsgFailRep = new MessageFailNotifyRepository();
//            var uEntity = MsgFailRep.GetById((int)notifyView.ReferenceId.Value);
//            if (uEntity != null)
//            {
//                uEntity.ResendTimes++;
//                uEntity.LastModifyDate = DateTime.Now;
//                if (notifyView.IsSuccessful)
//                {
//                    uEntity.Status = (int)EnumResolveState.Resolved;
//                }
//                if (autoCommit)
//                    MsgFailRep.CommitSaveChanges();
//            }
//        }

//        /// <summary>
//        /// 获取需要重发学员生日的消息
//        /// </summary>
//        /// <param name="currentDate"></param>
//        /// <returns></returns>
//        public List<MessageFailNotify> GetStudentBirthdayFailNotify(DateTime currentDate)
//        {
//            MessageFailNotifyRepository MsgFailRep = new MessageFailNotifyRepository();
//            return MsgFailRep.FindBatch(t => t.Status == (int)EnumResolveState.WaitResolve && t.ResendTimes < 3 && t.CreatedDate <= currentDate, t => t.SN);
          
//        }
//    }
//}
